package eteam.aps.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import eteam.aps.model.entity.ProductCategory;
import eteam.aps.model.vo.ProductCategoryTreeVo;
import eteam.aps.model.vo.ProductCategoryVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 产品分类持久层
 *
 * @author WMT
 */
@Mapper
public interface ProductCategoryMapper extends BaseMapper<ProductCategory> {
    /**
     * 逻辑删除产品分类，同时设置最后修改人和最后修改时间
     * @param productCategory 产品分类
     * @return 受影响的行数
     */
    int deleteOne(ProductCategory productCategory);

    /**
     * 根据fId物理删除字典
     * @param fId fId
     * @return 受影响的行数
     */
    int deleteByFId(String fId);

    /**
     * 修改产品分类信息
     * @param productCategory 产品分类
     * @return 受影响的行数
     */
    int updateOne(ProductCategory productCategory);

    /**
     * 根据fId查询产品分类详情
     * @param fId fId
     * @return 产品分类详情
     */
    ProductCategoryVo selectDetails(String fId);


    /**
     * 分页查询所有产品分类数据--记录条数
     *
     * @param map 查询参数，分页参数
     * @return 产品分类列表
     */
    int selectCountAll(Map<String, Object> map);

    /**
     * 分页查询所有产品分类数据--记录
     *
     * @param map 查询参数，分页参数
     * @return 产品分类列表
     */
    List<ProductCategoryVo> selectAll(Map<String, Object> map);

    /**
     * 根据产品分类名称统计总数
     * @param fEcName 产品分类名称
     * @return 总数
     */
    int selectCountEcName(String fEcName);

    /**
     * 根据产品分类编号统计总数
     * @param fEcCode 装备分类编号
     * @return 总数
     */
    int selectCountEcCode(String fEcCode);

    /**
     * 根据fId查询产品分类
     * @param fId fId
     * @return 产品分类
     */
    ProductCategory selectFEcByFId(String fId);

    /**
     * 根据装备分类fId查询产品分类状态
     * @param fId 产品分类fId
     * @return 产品分类状态
     */
    int selectFState(String fId);

    /**
     * 查询产品分类目录树
     * @return 产品分类列表
     */
    List<ProductCategoryTreeVo> selectEcTree(Map<String,Object> map);

}
